﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using DTOMedicalProject;

namespace MRAccesoDatos
{
    public class clsPerfil
    {
        MRAccesoDatosDataContext db = new MRAccesoDatosDataContext();

        public clsPerfil()
        {
            
        }

        public List<DTOPerfil> ObtenerPerfil()
        {
            int i = 0;

            List<DTOPerfil>lstPefiles = new List<DTOPerfil>();

            try
            {
                var perfil = (from tp in db.Perfils
                               select tp).ToList();

                foreach (Perfil tpperfil in perfil)
                {
                    lstPefiles.Add(new DTOPerfil());
                    lstPefiles[i].Cod_Perfil = tpperfil.Cod_Perfil;
                    lstPefiles[i].Descripcion = tpperfil.Descripcion;


                    i++;
                }

            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrio un error obteniendo los datos. " + ex.Message);
            }

            return lstPefiles;

        }

        public DTORespuesta InsertaPerfil(DTOPerfil tpperfil)
        {
            DTORespuesta resp = new DTORespuesta();
            Perfil tp_perfil = new Perfil();

            try
            {

                tp_perfil.Cod_Perfil = tpperfil.Cod_Perfil;
                tp_perfil.Descripcion = tpperfil.Descripcion;

                db.Perfils.InsertOnSubmit(tp_perfil);
                db.SubmitChanges();

                resp.Mensaje = "Los datos fueron insertados correctamente";
                resp.Codigo = 100;

                return resp;
            }
            catch (Exception ex)
            {
                resp.Mensaje = ex.Message;
                resp.Codigo = -100;

                return resp;

            }
        }

        public DTORespuesta ActualizarPerfil(DTOPerfil tpperfil)
        {
            DTORespuesta resp = new DTORespuesta();


            try
            {

                Perfil tp_perfil = db.Perfils.Single(p => p.Cod_Perfil == tpperfil.Cod_Perfil);
                tp_perfil.Cod_Perfil = tpperfil.Cod_Perfil;
                tp_perfil.Descripcion = tpperfil.Descripcion;



                resp.Codigo = 102;
                resp.Mensaje = "Los datos fueron Actualizados correctamente.";
                return resp;

            }
            catch (Exception ex)
            {
                resp.Mensaje = ex.Message;
                resp.Codigo = -102;
                return resp;

            }

        }

        public DTORespuesta EliminarPerfil(DTOPerfil tpperfil)
        {
            DTORespuesta resp = new DTORespuesta();

            try
            {
                var tppefil = db.Perfils.Single(p => p.Cod_Perfil == tpperfil.Cod_Perfil);
                db.Perfils.DeleteOnSubmit(tppefil);
                db.SubmitChanges();

                resp.Codigo = 101;
                resp.Mensaje = "Los datos fueron eliminados correctamente.";
                return resp;
            }
            catch (Exception ex)
            {
                resp.Mensaje = ex.Message;
                resp.Codigo = -101;
                return resp;
            }
        }

        
    }
}
